package Dao;

import Pojo.*;
import java.util.List;

/**
 * Interface para o DAO de nota. Toda implementação dessa interface deve implementar os métodos abaixos.
 * @author Ronan Lopes
 *
 */
public interface NotaDao {
	/**
	 * Inserir uma Nota à lista de Notas
	 * @param nota
	 * @return true ou false indicando sucesso ou não
	 */
	public boolean inserir(Nota nota);
	
	/**
	 * Alterar uma Nota da lista de Notas
	 * @param nota
	 * @return true ou false indicando sucesso ou não
	 */
	public boolean alterar(Nota nota);
        
        /**
	 * Remover uma Nota da lista de Notas
	 * @param nota
	 * @return true ou false indicando sucesso ou não
	 */
	public boolean remover(Nota nota);
        
        /**
	 * Verificar o lançamento de uma nota
	 * @param aluno
         * @param atividade
	 * @return id da nota ou -1 em caso de não encontrado
	 */
        public int verificarLancamento(Aluno aluno, Atividade atividade);
        
        /**
         * Pesquisa notas por atividade
         * @param atividade
         * @return 
         */
        public List<Nota> pesquisarPorAtividade(Atividade atividade);
        
        /**
	 * Verificar o lançamento de uma nota
	 * @param aluno
         * @param atividade
	 * @return id da nota ou -1 em caso de não encontrado
	 */
        public Nota pesquisarNota(Aluno aluno, Atividade atividade);
        
        /**
	 * Pesquisa notas pelo id
	 * @param id
	 * @return Nota encontrada na busca
	 */
	public Nota pesquisarPorId(int id);
}
